package com.lang.downloader.http.header;

import lombok.Getter;
import lombok.Setter;

/**
 * 响应头
 */
@Getter
@Setter
public class HttpResponseHeader extends HttpResponseHeaderKeySet {

    @HttpHeader(name = "Accept-Ranges", description = "表明服务器是否支持指定范围请求及哪种类型的分段请求")
    private String acceptRanges;

    @HttpHeader(name = "Age", description = "从原始服务器到代理缓存形成的估算时间（以秒计，非负）")
    private String age;

    @HttpHeader(name = "Allow", description = "对某网络资源的有效的请求行为，不允许则返回405")
    private String allow;

    @HttpHeader(name = "Cache-Control", description = "告诉所有的缓存机制是否可以缓存及哪种类型")
    private String cacheControl;

    @HttpHeader(name = "Content-Encoding", description = "web服务器支持的返回内容压缩编码类型。")
    private String contentEncoding;

    @HttpHeader(name = "Content-Language", description = "响应体的语言")
    private String contentLanguage;

    @HttpHeader(name = "Content-Length", description = "响应体的长度")
    private String contentLength;

    @HttpHeader(name = "Content-Location", description = "请求资源可替代的备用的另一地址")
    private String contentLocation;

    @HttpHeader(name = "Content-MD5", description = "返回资源的MD5校验值")
    private String contentMd5;

    @HttpHeader(name = "Content-Range", description = "在整个返回体中本部分的字节位置")
    private String contentRange;

    @HttpHeader(name = "Content-Type", description = "返回内容的MIME类型")
    private String contentType;

    @HttpHeader(name = "Date", description = "原始服务器消息发出的时间")
    private String date;

    @HttpHeader(name = "ETag", description = "请求变量的实体标签的当前值")
    private String etag;

    @HttpHeader(name = "Expires", description = "响应过期的日期和时间")
    private String expires;

    @HttpHeader(name = "Last-Modified", description = "请求资源的最后修改时间")
    private String lastModified;

    @HttpHeader(name = "Location", description = "用来重定向接收方到非请求URL的位置来完成请求或标识新的资源")
    private String location;

    @HttpHeader(name = "Pragma", description = "包括实现特定的指令，它可应用到响应链上的任何接收方")
    private String pragma;

    @HttpHeader(name = "Proxy-Authenticate", description = "它指出认证方案和可应用到代理的该URL上的参数")
    private String proxyAuthenticate;

    @HttpHeader(name = "refresh", description = "应用于重定向或一个新的资源被创造，在5秒之后重定向（由网景提出，被大部分浏览器支持）")
    private String refresh;

    @HttpHeader(name = "Retry-After", description = "如果实体暂时不可取，通知客户端在指定时间之后再次尝试")
    private String retryAfter;

    @HttpHeader(name = "Server", description = "web服务器软件名称")
    private String server;

    @HttpHeader(name = "Set-Cookie", description = "设置Http Cookie")
    private String setCookie;

    @HttpHeader(name = "Trailer", description = "指出头域在分块传输编码的尾部存在")
    private String trailer;

    @HttpHeader(name = "Transfer-Encoding", description = "文件传输编码")
    private String transferEncoding;

    @HttpHeader(name = "Vary", description = "告诉下游代理是使用缓存响应还是从原始服务器请求")
    private String vary;

    @HttpHeader(name = "Via", description = "告知代理客户端响应是通过哪里发送的")
    private String via;

    @HttpHeader(name = "Warning", description = "警告实体可能存在的问题")
    private String warning;

    @HttpHeader(name = "WWW-Authenticate", description = "表明客户端请求实体应该使用的授权方案")
    private String wwwAuthenticate;
}
